iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0
自我挑戰組

30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用系列 第 10

Day 10:自動化測試的 單元測試、測試金字塔 解說

  • 分享至 

  • xImage
  •  

由於之後會整合自動化測試到 CI/CD 流程中,所以我們講一下測試金字塔。

測試金字塔解析

測試金字塔是由三個主要層次組成的:

  • 底層: 單元測試(Unit Tests)
  • 中層: 整合測試(Integration Tests)
  • 頂層: 端到端測試(End-to-End Tests)
  • 附加層: UI測試、性能測試、安全測試等

底層:單元測試

我們接下來至少會做一些單元測試,由於不需要設定外部依賴的環境(DB 或是第三方 API 等等),這是執行起來最簡單的測試。
這一層應該擁有最多的 test case。單元測試提供程式碼邏輯的驗證,並且必須非常快速地執行完。

優勢:

  • 高速執行
  • 早期發現問題

要點:

  • 單元測試應針對各個功能點進行詳細的覆蓋。
  • 用Mocking和Stubbing來模擬外部依賴。

中層:整合測試

這些測試用於驗證不同系統或 module 間的互動。

優勢:

  • 確保 module 之間的良好協同整合
  • 更接近真實使用情況

要點:

  • 應避免重複單元測試已覆蓋的測試用例。
  • 集成測試通常需要更多的環境設定。

頂層:端到端測試

這種測試通常在逼近真實的環境中執行,並會模擬真實使用者的行為。

優勢:

  • 完整覆蓋應用流程
  • 高度模擬真實使用情況

要點:

  • 端對端測試通常最為耗時和資源密集。
  • 需要對不同的端點和介面進行測試。

附加層:其他測試

UI、性能、安全等等的測試。

進一步論述測試金字塔的重要性

快速的問題解決

由於測試金字塔底層的單元測試快速並經常執行,它們提供了即時的回饋,這使得開發者能夠迅速地識別和解決問題。

持續改進的品質

隨著時間的推移,持續的測試實踐會積累成為軟體質量的保障。

深化團隊文化

自動化測試不僅提升了軟體品質,也有助於建立一個注重質量和效率的團隊文化。

總結

在我們的RSS閱讀器專案中,測試金字塔將作為開發的核心組件。掌握這些測試層次並有效地利用它們,對於任何想要在軟體開發領域取得成功的人來說,都是非常重要的。


上一篇
Day 9:介紹要被CI/CD的RSS閱讀器專案
下一篇
Day 11: 在 VSCode 中建立 Go 專案,打造你的 RSS 閱讀器 API
系列文
30天打造自己的RSS閱讀器:Go語言與DevOps的實戰應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言